from flask import Flask,request
from flask import render_template
# 调用自定义模块中的函数
from research import research4letters
# 服务端：中央登记中心

app = Flask(__name__)

# 1. 路由：定义url（路由不能重复）
# 1.1 相对路径（相对一个根路径的一部分，不是完整），一部分：相对 IP地址的，endpoint（终结点）
# 1.2 request ，methods [GET][POST]需掌握并使用的两种回复方法
# 2. 视图函数： 视图函数课返回页面（函数是做重复功能的代码块），不可重复出现，需改名
# 2.1 代码块，用来处理数据的   （python的核心）
# 2.2 返回值：'Hello World!'文本（用户体验极低，且不容易处理）
#            html文件，（用户体验高，UI美观简洁）
#            Json文件，数据处理方便，常用于数据传递（期末不用）
# html 静态文件 链接 -> 传送 -> 断开

# 1. request ，methods [GET默认]
@app.route('/')
def hello_world():  # put application's code here
    return render_template('hello.html')

#--------------------------名字全称-----------------#

# 2. request ，methods [POST]  名字全称
@app.route('/index')
def index():  # put application's code here
    return render_template('index.html')

# 名字全称结果页
@app.route('/result',methods=['POST'])
def result():  # put application's code here
    # 用户数据提交到此处
    py_firstname = request.form['firstname']
    py_lastname = request.form['lastname']
    py_fullname = py_firstname.title() + ' ' + py_lastname.title()
    return render_template('result.html',
                           fullname = py_fullname)

#--------------------元音字母查询----------------------#

# 元音字母查询
@app.route('/yuanyin')
def yuanyin():  # put application's code here
    return render_template('yuanyin.html')


# 元音字母查询结果页
@app.route('/result1',methods=['POST'])
def result1():  # put application's code here
    # 用户数据提交到此处
    py_word = set(request.form['word'])
    py_vowels = set(request.form['vowels'])
    py_search4letters = {}
    for i in py_word:
        if i in py_vowels:
            py_search4letters.setdefault(i, 0)
            py_search4letters[i] += 1
    return render_template('result1.html',
                           search4letters = py_search4letters)

# --------------------------课程表-------------------------------- #

# 课程表
@app.route('/class')
def classes():   # put application's code here
    return render_template('class.html')

#----------------------购物车项目---------------------#

# 登录页面
@app.route('/login')
def login():  # put application's code here
        return render_template('login.html')

# 购物界面
@app.route('/shopping',methods=['POST'])
def shopping():# put application's code here
    py_username = request.form['username']
    py_password = request.form['password']
    if len(py_username) > 0 and len(py_password) > 0:
        return render_template('shopping.html',
                               user_name=py_username)
    else:
        error = '请输入账号和密码'
        return render_template('login.html',error=error)

# 购物车界面
@app.route('/cart',methods=['POST'])
def cart():  # put application's code here
    shopping_cart = request.form.getlist('goods')
    shopping_list = "\n".join(shopping_cart)
    return render_template('cart.html',list=shopping_list)

# 错误返回网页
@app.route('/no')
def no():   # put application's code here
    return render_template('no.html')

if __name__ == '__main__':
    app.run()
